﻿using Ewell.Interface.Common.Model.Constant;
using Ewell.Interface.Common.Model.GateWay.Dto.Out;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ewell.Interface.Common.Model.GateWay.GateWayUriInfo
{
    /// <summary>
    /// 排班管理
    /// </summary>
    public class ScheduleManageDubboService : GateWayUri
    {
        public override string url => "dubbo/cc.ewell.his.out.service.inter.dubbo.ScheduleManageDubboService";
        /// <summary>
        /// [7-100055-01]根据条件查询出班情况V1
        /// </summary>
        public GateWayMethod queryScheduleByExampleV1 => new QueryScheduleByExampleV1(url);
        public GateWayMethod encounterReserved => new EncounterReserved(url);
    }

    public class QueryScheduleByExampleV1 : GateWayMethod
    {
        public QueryScheduleByExampleV1(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "queryScheduleByExampleV1";

        public override string paramClass => "cc.ewell.his.out.upon.req.schedule.QueryScheduleByExampleV1Request";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(QueryScheduleByExampleV1Request);

        public override Type responseParamType => typeof(List<OutScheduleDTO>);

        public override string desc => "[7-100055-01]根据条件查询出班情况V1";
    }

    public class EncounterReserved : GateWayMethod
    {
        public EncounterReserved(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "encounterReserved";

        public override string paramClass => "cc.ewell.his.out.upon.req.schedule.EncounterReservedRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(EncounterReservedRequest);

        public override Type responseParamType => typeof(EncounterReservedResponse);

        public override string desc => "[7-100056-01]预约登记";
    }
}
